#ifndef EQUIPMENT_HH
#define EQUIPMENT_HH

#include "AttributeBonuses.hh"
#include <string>

class Character; // Forward declaration

enum class EquipmentType {
    WEAPON,
    HELMET,
    ARMOR,
    LEGGINGS,
    BOOTS,
    ACCESSORY
};

class Equipment {
public:
    Equipment(const std::string& name, const std::string& desc, EquipmentType type, int level = 1);
    void applyBonuses(Character& character) const;
    void upgrade(); // Upgrade equipment
    int getLevel() const { return level; }
    EquipmentType getType() const { return type; }
    
    std::string name;
    std::string description;
    AttributeBonuses bonuses;

private:
    EquipmentType type;
    int level;
    static const int MAX_LEVEL = 3;
    void setBonuses(); // Set bonuses based on type and level
};

#endif // EQUIPMENT_HH